package com.link.base.wechat.authweb.service;

import com.link.base.wechat.authweb.model.AuthWeb;

/**
 * 微信网页授权
 *
 * @author ouyangzhenqiang
 * @date 2019/03/10 23:39
 */
public interface AuthWebService {
    
    /**
     * 生成网页授权链接
     * 
     * @author ouyangzhenqiang
     * @date 2019/03/11 01:27
     * @param wxAppId 微信公众号应用Id
     * @param scope 网页授权scope
     * @param crmRedisKey 存储了原链接和wxAppId的redisKey
     */
    String generateAuthWebUrl(String wxAppId, String scope, String crmRedisKey) throws Exception;

    /**
     * 接收code并处理相关事项，最终重定向到真正需要打开的url（带上openId）
     *
     * @author ouyangzhenqiang
     * @date 2019/03/11 11:16
     * @param code code
     * @param crmRedisKey 存储了原链接和wxAppId的redisKey
     */
    String dealCodeReturnRedirectUrl(String code, String crmRedisKey) throws Exception;

    /**
     * 基于code获取用户openId/unionId/access_token
     *
     * @author ouyangzhenqiang
     * @date 2019/03/11 01:51
     * @param code code
     * @param wxAppId 微信公众号应用Id
     */
    AuthWeb getUserByCode(String code, String wxAppId) throws Exception;
}
